package main

import "fmt"

func main() {
	// 用法一：for 赋值语句; 判断条件语句; 赋值变量递增或者递减语句 { }
	for i := 0; i < 3; i++ {
		fmt.Println("i=,", i)
	}
	// 用法二：for 条件 {}
	age := 0
	for age < 18 {
		fmt.Printf("%d\n", age)
		age++
	}
	// 用法三：for {} 死循环 需要配合if 来判断
	j := 1
	for {
		j++
		fmt.Println("loop j =", j)
		if j > 10 {
			break
		}
	}
	// 用法四： range 循环

	// 这种循环可以对 字符串、数组、切片、字典等进行迭代，获取元素。
	// 只获取索引（字典就是键）
	var a [3]int
	for i := range a {
		fmt.Printf("%d %d\n", i, a[i])
	}
	// 获取index 和 value
	for i, v := range a {
		fmt.Printf("%d %d\n", i, v)
	}
	// 如果不想获取index 索引 则可以用_代替
	for _, v := range a {
		fmt.Println(v)
	}
	// 遍历map时候  for key , value := range map {}
	ages := map[string]int{
		"张三": 20,
		"李四": 32,
	}
	for name := range ages {
		fmt.Printf("%s\t%d\n", name, ages[name])
	}
}
